package cn.fx.framework.web;


import cn.fx.framework.redis.MyRedisCacheManager;
import cn.fx.framework.redis.MyRedisTemplate;
import org.springframework.context.ApplicationContext;

/**
 * @author ljh
 * @date 2018-07-29 17:57
 */
public interface ApplicationHandler {

    /**
     * 获取spring的管理上下文
     * @return
     */
    ApplicationContext getApplicationContext();


    void setRedisCacheMananger(MyRedisCacheManager redisCacheMananger);

    /**
     * 设置redisTemplate
     * @param redisTemplate MyRedisTemplate
     */
    void setMyRedisTemplate(MyRedisTemplate redisTemplate);

    /**
     * 获取系统名称
     * @return
     */
    String getName();

    /**
     * 获取系统版本号
     * @return
     */
    String getVersion();

    /**
     * 获取redis key的前辍，一般一个项目设置一个独立的前辍，确保项目之间同名的key不重复
     * @return
     */
    String getRedisKeyPrefix();

    /**
     * 获取当前应用运行的环境：dev/test/debug/pre/prod
     * @return
     */
    String getCurEnvironment();

    /**
     * 是否为开发环境
     * @return
     */
    boolean isDevEnvironment();

    /**
     * 判断是否为测试环境
     * @return
     */
    boolean isTestEnvironment();

    /**
     * 判断是否为本地调试环境
     * @return
     */
    boolean isDebugEnvironment();

    /**
     * 判断是否为预发布环境
     * @return
     */
    boolean isPreEnvironment();

    /**
     * 判断是否为生产环境
     * @return
     */
    boolean isProdEnvironment();


}
